home *** CD-ROM | disk | FTP | other *** search
/ CD Ware Multimedia 1995 May / cd Ware (Juegos) Epimundo.iso / DOS / PRGMMING / M2PROTOS.ZIP / CRC.DEF < prev    next >
Encoding:
Modula Definition  |  1990-08-02  |  1.4 KB  |  46 lines

  1. (*%F _fdata *)
  2. (*# call(seg_name => null) *)
  3. (*%E *)
  4. (*# module(implementation=>on) *)
  5. (*# module(init_code=>off) *)
  6. (*# data(seg_name => null) *)
  7. (*# call(o_a_copy => off) *)
  8. DEFINITION MODULE CRC;
  9.  
  10. (*
  11. Cyclic redundancy check and checksum routines for JPI Modula-2
  12.     by Carl Neiburger
  13.        169 N. 25th St.
  14.        San Jose, Calif. 95116
  15.  
  16.        CompuServe No. 72336,2257
  17.  
  18.     A program variable of TYPE ChkProc may be assigned to UpdCRC or 
  19. UpdChecksum, allowing procedures to use either check method without a lot 
  20. of IF ... THEN ... ELSE statements.  Note, however, that an IF ... THEN 
  21. ... ELSE statement is still required to compute the final CRC or checksum 
  22. because the CRC has 16 significant bits and the checksum, although of type 
  23. CARDINAL for compatibility, has only eight.
  24.  
  25. *)
  26.  
  27. TYPE
  28.     ChkProc = PROCEDURE ( ADDRESS, CARDINAL, CARDINAL): CARDINAL;
  29.  
  30. PROCEDURE DoCRC( V : ADDRESS; count, value: CARDINAL) : CARDINAL;
  31.     (* 16-bit CRC calculation *)
  32.  
  33. PROCEDURE DoC32( V : ADDRESS; count: CARDINAL; value: LONGCARD):LONGCARD;
  34.     (* 16-bit CRC calculation *)
  35.  
  36. PROCEDURE DoKCRC( V : ADDRESS; count, value: CARDINAL) : CARDINAL;
  37.     (* Kermit CRC calculation *)
  38.  
  39. PROCEDURE DoCks(V : ADDRESS; count, value: CARDINAL): CARDINAL;
  40.     (* checksum calculation *)
  41.  
  42. PROCEDURE DoBCks(V : ADDRESS; count, value: CARDINAL): CARDINAL;
  43.     (* CompuServe B checksum calculation *)
  44.  
  45. END CRC.
  46.